package com.ruoyi.team.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 合同信息对象 contract
 *
 * @author ruoyi
 * @date 2022-11-28
 */
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("contract")
public class Contract extends BaseEntity
{
    private static final long serialVersionUID = 1L;


    /** $column.columnComment */
    @TableId(type = IdType.AUTO)
    @TableField("id")
    private Long id;

    /** 客户 */
    @Excel(name = "客户")
    @TableField("customer_id")
    private Long customerId;

    /** 合同名称 */
    @Excel(name = "合同名称")
    @TableField("contract_name")
    private String contractName;

    /** 合同编号 */
    @Excel(name = "合同编号")
    @TableField("contract_code")
    private String contractCode;

    /** 合同金额 */
    @Excel(name = "合同金额")
    @TableField("amounts")
    private BigDecimal amounts;

    /** 合同开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("start_date")
    private Date startDate;

    /** 合同结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("end_date")
    private Date endDate;

    /** 电子附件 */
    @Excel(name = "电子附件")
    @TableField("appendix")
    private String appendix;

    /** 是否盖章确认 0 否 1 是 */
    @Excel(name = "是否盖章确认 0 否 1 是")
    @TableField("affix_seal_state")
    private Integer affixSealState;

    /** 审核状态 0 未审核 1 审核通过 -1 审核不通过 */
    @Excel(name = "审核状态 0 未审核 1 审核通过 -1 审核不通过")
    @TableField("audit_state")
    private Integer auditState;

    /** 是否作废 -1 作废 0 在用 */
    @Excel(name = "是否作废 -1 作废 0 在用")
    @TableField("nullify_state")
    private Integer nullifyState;

    /** 录入人 */
    @Excel(name = "录入人")
    @TableField("input_user")
    private Long inputUser;

    /** 录入时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "录入时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @TableField("input_time")
    private Date inputTime;

    @TableField(exist = false)
    private String inputUserName;

}
